﻿using System;

using Yawf.Security.Entities;
using Yawf.Web.Managers.Entities;
using Yawf.Web.Utils;

namespace Yawf.Web.Managers {
	public interface IModelViewerManager {
		/// <summary>
		/// This method is calleed to present buisness model data on a special request.
		/// This method is invoked by the MVCControler after calling the ModelViewerManager
		/// This mehod should get all objects in dataCollector present in a view. The view 
		/// should be outputted through convienient method in dataCollector.
		/// </summary>
		/// <param name="requestWrapper">RequestWrapper object</param>
		/// <param name="responseWrapper">ResponseWrapper object</param>
		/// <param name="view">view object with data about the view, contains also the view template</param>
		/// <param name="user">currently logged on user, could be null</param>
		void ProcessView(RequestWrapper requestWrapper,ResponseWrapper responseWrapper,View view,IUser user);
	}
}
